package com.jeesite.modules.task.deploy.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.jeesite.common.collect.ListUtils;
import com.jeesite.common.entity.BaseEntity;
import com.jeesite.common.entity.DataEntity;
import com.jeesite.common.mybatis.annotation.Column;
import com.jeesite.common.mybatis.annotation.Table;
import com.jeesite.common.mybatis.mapper.query.QueryType;
import com.jeesite.modules.task.action.entity.DcSupTaskAction;

import javax.validation.constraints.Size;
import java.util.Date;
import java.util.List;

/**
 * 任务部署信息表(主)Entity
 * @author zrr
 * @version 2022-03-02
 */
@Table(name="dc_sup_task_info", alias="a", label="任务部署信息表(主)信息", columns={
		@Column(name="id", attrName="id", label="主键", isPK=true),
		@Column(name="task_year", attrName="taskYear", label="任务年度"),
		@Column(name="task_type_code", attrName="taskTypeCode", label="任务类型编码"),
		@Column(name="task_type_name", attrName="taskTypeName", label="任务类型名称"),
		@Column(name="task_title", attrName="taskTitle", label="任务标题", queryType=QueryType.LIKE),
		@Column(name="task_content", attrName="taskContent", label="任务内容", queryType=QueryType.LIKE),
		@Column(name="task_start_time", attrName="taskStartTime", label="任务开始时间", comment="任务开始时间(精确到分钟)"),
		@Column(name="task_end_time", attrName="taskEndTime", label="任务结束时间", comment="任务结束时间(精确到分钟)"),
		@Column(name="task_require_code", attrName="taskRequireCode", label="督办要求编码"),
		@Column(name="task_require_name", attrName="taskRequireName", label="督办要求名称"),
		@Column(name="task_sup_org", attrName="taskSupOrg", label="督办单位", comment="督办单位(单选)"),
		@Column(name="task_leader", attrName="taskLeader", label="牵头领导id", comment="牵头领导id(多选，逗号分隔)"),
		@Column(name="task_leader_org", attrName="taskLeaderOrg", label="牵头责任单位id", comment="牵头责任单位id(多选，逗号分隔)"),
		@Column(name="contact_name", attrName="contactName", label="联系人", queryType=QueryType.LIKE),
		@Column(name="contact_phone", attrName="contactPhone", label="联系电话"),
		@Column(name="feedback_way", attrName="feedbackWay", label="反馈方式", comment="反馈方式（1固定时间、2按周、3按月、4按季度）"),
		@Column(name="feedback_rate", attrName="feedbackRate", label="反馈频次", comment="反馈频次（每周几、每月几号、每季度下一个月的几号）"),
		@Column(name="message_number", attrName="messageNumber", label="督办字号"),
		@Column(name="form_flag", attrName="formFlag", label="是否生成督办单", comment="是否生成督办单（0否，1是）"),
		@Column(name="audit_flag", attrName="auditFlag", label="是否需要审核", comment="是否需要审核（0否，1是）"),
		@Column(name="auditor_code", attrName="auditorCode", label="审核人编号"),
		@Column(name="auditor_name", attrName="auditorName", label="审核人名称", queryType=QueryType.LIKE),
		@Column(name="task_status", attrName="taskStatus", label="任务状态", comment="任务状态（0删除、1草稿、2已发布、3任务部署审核通过、4任务部署审核驳回、5秘书长审核通过、6秘书长审核驳回、7已确认、8进行中、9已结束）"),
		@Column(name="task_progress", attrName="taskProgress", label="任务完成进度", comment="任务完成进度（1进度滞后、2逾期反馈、3序时推进、4已完成）"),
		@Column(name="decompose_flag", attrName="decomposeFlag", label="是否是分解任务", comment="是否是分解任务（0否，1是）"),
		@Column(name="source_task_id", attrName="sourceTaskId", label="源任务id", comment="源任务id（初始任务id）"),
		@Column(name="parent_task_id", attrName="parentTaskId", label="父任务id", comment="父任务id（上一级分解任务id）"),
		@Column(name="create_by", attrName="createBy", label="创建人", isUpdate=false, isQuery=false),
		@Column(name="create_date", attrName="createDate", label="创建时间", isUpdate=false, isQuery=false, isUpdateForce=true),
		@Column(name="update_by", attrName="updateBy", label="更新人", isQuery=false),
		@Column(name="update_date", attrName="updateDate", label="更新时间", isQuery=false, isUpdateForce=true),
		@Column(name="remarks", attrName="remarks", label="备注", queryType=QueryType.LIKE),
		@Column(includeEntity=BaseEntity.class),
		@Column(name="remarks1", attrName="remarks1", label="备用字段1", queryType=QueryType.LIKE, isUpdateForce=true),
		@Column(name="remarks2", attrName="remarks2", label="备用字段2", queryType=QueryType.LIKE),
		@Column(name="remarks3", attrName="remarks3", label="备用字段3", queryType=QueryType.LIKE),
		@Column(name="remarks4", attrName="remarks4", label="备用字段4", queryType=QueryType.LIKE),
		@Column(name="task_leader_name", attrName="taskLeaderName", label="牵头领导姓名", comment="牵头领导姓名（多选，逗号分隔）", queryType=QueryType.LIKE),
		@Column(name="task_leader_org_name", attrName="taskLeaderOrgName", label="牵头责任单位名称", comment="牵头责任单位名称（多选，逗号分隔）", queryType=QueryType.LIKE),
		@Column(name="create_org", attrName="createOrg", label="创建人当时所在机构"),
		@Column(name="create_org_name", attrName="createOrgName", label="创建人当时所在机构"),
		@Column(name="copy_to_code", attrName="copyToCode", label="抄送人编号"),
		@Column(name="copy_to_name", attrName="copyToName", label="抄送人名称"),
		@Column(name="task_sup_orgname", attrName="taskSupOrgName", label="督办单位"),
		@Column(name="task_coop_org", attrName="taskCoopOrg", label="协同单位"),
		@Column(name="task_coop_org_name", attrName="taskCoopOrgName", label="协同单位名称"),
		@Column(name="task_sup_user", attrName="taskSupUser", label="督办人"),
		@Column(name="task_sup_user_name", attrName="taskSupUserName", label="督办人名称"),
		@Column(name="normal_flag", attrName="normalFlag", label="是否普通任务（1普通任务，2秘书一科任务）"),
	}, orderBy="a.update_date DESC"
)
public class DcSupTaskInfoMulti extends DataEntity<DcSupTaskInfoMulti> {

	private static final long serialVersionUID = 1L;
	 /**
	 * 任务年度
	 */
	private String taskYear;

	public List<String> getTaskRequireCode() {
		return taskRequireCode;
	}

	public void setTaskRequireCode(List<String> taskRequireCode) {
		this.taskRequireCode = taskRequireCode;
	}

	public List<String> getTaskRequireName() {
		return taskRequireName;
	}

	public void setTaskRequireName(List<String> taskRequireName) {
		this.taskRequireName = taskRequireName;
	}

	/**
	 * 任务类型编码
	 */
	private String taskTypeCode;
	 /**
	 * 任务类型名称
	 */
	private String taskTypeName;
	 /**
	 * 任务标题
	 */
	private String taskTitle;

	public List<String> getTaskContent() {
		return taskContent;
	}

	public void setTaskContent(List<String> taskContent) {
		this.taskContent = taskContent;
	}

	/**
	 * 任务内容
	 */
	 private List<String> taskContent;
	 /**
	 * 任务开始时间(精确到分钟)
	 */
	private List<Date> taskStartTime;
	private String taskStartTimeStr;
	 /**
	 * 任务结束时间(精确到分钟)
	 */
	private List<Date> taskEndTime;
	private String taskEndTimeStr;
	 /**
	 * 督办要求编码
	 */
	private List<String> taskRequireCode;
	 /**
	 * 督办要求名称
	 */
	private List<String> taskRequireName;
	 /**
	 * 督办单位(单选)
	 */
	private List<String> taskSupOrg;
	 /**
	 * 牵头领导id(多选，逗号分隔)
	 */
	private List<String> taskLeader;
	 /**
	 * 牵头责任单位id(多选，逗号分隔)
	 */
	private List<String> taskLeaderOrg;
	 /**
	 * 联系人
	 */
	private List<String> contactName;
	 /**
	 * 联系电话
	 */
	private List<String> contactPhone;
	 /**
	 * 反馈方式（1固定时间、2按周、3按月、4按季度）
	 */
	private List<String> feedbackWay;
	 /**
	 * 反馈频次（每周几、每月几号、每季度下一个月的几号）
	 */
	private List<String> feedbackRate;
	 /**
	 * 督办字号
	 */
	private String messageNumber;
	 /**
	 * 是否生成督办单（0否，1是）
	 */
	private String formFlag;
	 /**
	 * 是否需要审核（0否，1是）
	 */
	private String auditFlag;
	 /**
	 * 审核人编号
	 */
	private String auditorCode;
	 /**
	 * 审核人名称
	 */
	private String auditorName;
	 /**
	 * 任务状态（0删除、1草稿、2已发布、3任务部署审核通过、4任务部署审核驳回、5秘书长审核通过、6秘书长审核驳回、7已确认、8进行中、9已结束）
	 */
	private String taskStatus;
	 /**
	 * 任务完成进度（1进度滞后、2逾期反馈、3序时推进、4已完成）
	 */
	private String taskProgress;
	 /**
	 * 是否是分解任务（0否，1是）
	 */
	private String decomposeFlag;
	 /**
	 * 源任务id（初始任务id）
	 */
	private String sourceTaskId;
	 /**
	 * 父任务id（上一级分解任务id）
	 */
	private String parentTaskId;
	 /**
	 * 备用字段1
	 */
	private Long remarks1;
	 /**
	 * 备用字段2
	 */
	private String remarks2;
	 /**
	 * 备用字段3
	 */
	private String remarks3;
	 /**
	 * 备用字段4
	 */
	private String remarks4;
	 /**
	 * 牵头领导姓名（多选，逗号分隔）
	 */
	private List<String> taskLeaderName;
	 /**
	 * 牵头责任单位名称（多选，逗号分隔）
	 */
	private List<String> taskLeaderOrgName;
	 /**
	 * 创建人当时所在机构
	 */
	private String createOrg;
	private String createOrgName;
	private List<String> taskSupOrgName;
	/**
	 * 协同单位
	 */
	private List<String> taskCoopOrg;
	private List<String> taskCoopOrgName;
	/**
	 * 督办人
	 */
	private List<String> taskSupUser;
	private List<String> taskSupUserName;
	/**
	 * 是否普通任务（1普通任务，2秘书一科任务）
	 */
	private String normalFlag;

	private Integer formCount;

	public List<String> getSortNum() {
		return sortNum;
	}

	public void setSortNum(List<String> sortNum) {
		this.sortNum = sortNum;
	}

	/**
	 * 排序编号
	 */
	private List<String> sortNum;

	public String getAttachmentFlag() {
		return attachmentFlag;
	}

	public void setAttachmentFlag(String attachmentFlag) {
		this.attachmentFlag = attachmentFlag;
	}

	/**
	 * 反馈是否填附件r
	 */
	private String attachmentFlag;

	public Integer getFormCount() {
		return formCount;
	}

	public void setFormCount(Integer formCount) {
		this.formCount = formCount;
	}

	public String getNormalFlag() {
		return normalFlag;
	}

	public void setNormalFlag(String normalFlag) {
		this.normalFlag = normalFlag;
	}

	public String getCreateOrgName() {
		return createOrgName;
	}

	public void setCreateOrgName(String createOrgName) {
		this.createOrgName = createOrgName;
	}

	private List<DcSupTaskAction> dcSupTaskActionList = ListUtils.newArrayList();		// 子表列表
	private List<DcSupTaskInfoAdd> dcSupTaskInfoAddList1 = ListUtils.newArrayList();
	private List<DcSupTaskInfoAdd> dcSupTaskInfoAddList2 = ListUtils.newArrayList();
	private List<DcSupTaskInfoAdd> dcSupTaskInfoAddList3 = ListUtils.newArrayList();
	private List<DcSupTaskInfoAdd> dcSupTaskInfoAddList4 = ListUtils.newArrayList();
	private List<DcSupTaskInfoAdd> dcSupTaskInfoAddList5 = ListUtils.newArrayList();

	public List<DcSupTaskInfoAdd> getDcSupTaskInfoAddList1() {
		return dcSupTaskInfoAddList1;
	}

	public void setDcSupTaskInfoAddList1(List<DcSupTaskInfoAdd> dcSupTaskInfoAddList1) {
		this.dcSupTaskInfoAddList1 = dcSupTaskInfoAddList1;
	}

	public List<DcSupTaskInfoAdd> getDcSupTaskInfoAddList2() {
		return dcSupTaskInfoAddList2;
	}

	public void setDcSupTaskInfoAddList2(List<DcSupTaskInfoAdd> dcSupTaskInfoAddList2) {
		this.dcSupTaskInfoAddList2 = dcSupTaskInfoAddList2;
	}

	public List<DcSupTaskInfoAdd> getDcSupTaskInfoAddList3() {
		return dcSupTaskInfoAddList3;
	}

	public void setDcSupTaskInfoAddList3(List<DcSupTaskInfoAdd> dcSupTaskInfoAddList3) {
		this.dcSupTaskInfoAddList3 = dcSupTaskInfoAddList3;
	}

	public List<DcSupTaskInfoAdd> getDcSupTaskInfoAddList4() {
		return dcSupTaskInfoAddList4;
	}

	public void setDcSupTaskInfoAddList4(List<DcSupTaskInfoAdd> dcSupTaskInfoAddList4) {
		this.dcSupTaskInfoAddList4 = dcSupTaskInfoAddList4;
	}

	public List<DcSupTaskInfoAdd> getDcSupTaskInfoAddList5() {
		return dcSupTaskInfoAddList5;
	}

	public void setDcSupTaskInfoAddList5(List<DcSupTaskInfoAdd> dcSupTaskInfoAddList5) {
		this.dcSupTaskInfoAddList5 = dcSupTaskInfoAddList5;
	}

	/**
	 * 抄送人编号
	 */
	private String copyToCode;

	public String getCopyToName() {
		return copyToName;
	}

	public void setCopyToName(String copyToName) {
		this.copyToName = copyToName;
	}

	/**
	 * 抄送人名称
	 */
	private String copyToName;
	public String getCopyToCode() {
		return copyToCode;
	}

	public void setCopyToCode(String copyToCode) {
		this.copyToCode = copyToCode;
	}

	public String getTaskStartTimeStr() {
		return taskStartTimeStr;
	}

	public void setTaskStartTimeStr(String taskStartTimeStr) {
		this.taskStartTimeStr = taskStartTimeStr;
	}

	public String getTaskEndTimeStr() {
		return taskEndTimeStr;
	}

	public void setTaskEndTimeStr(String taskEndTimeStr) {
		this.taskEndTimeStr = taskEndTimeStr;
	}

	public DcSupTaskInfoMulti() {
		this(null);
	}

	public DcSupTaskInfoMulti(String id){
		super(id);
	}

	@Size(min=0, max=4, message="任务年度长度不能超过 4 个字符")
	public String getTaskYear() {
		return taskYear;
	}

	public void setTaskYear(String taskYear) {
		this.taskYear = taskYear;
	}

	@Size(min=0, max=100, message="任务类型编码长度不能超过 100 个字符")
	public String getTaskTypeCode() {
		return taskTypeCode;
	}

	public void setTaskTypeCode(String taskTypeCode) {
		this.taskTypeCode = taskTypeCode;
	}

	@Size(min=0, max=100, message="任务类型名称长度不能超过 100 个字符")
	public String getTaskTypeName() {
		return taskTypeName;
	}

	public void setTaskTypeName(String taskTypeName) {
		this.taskTypeName = taskTypeName;
	}

	public String getTaskTitle() {
		return taskTitle;
	}

	public void setTaskTitle(String taskTitle) {
		this.taskTitle = taskTitle;
	}

	@Size(min=0, max=100, message="督办字号长度不能超过 100 个字符")
	public String getMessageNumber() {
		return messageNumber;
	}

	public void setMessageNumber(String messageNumber) {
		this.messageNumber = messageNumber;
	}

	@Size(min=0, max=10, message="是否生成督办单长度不能超过 10 个字符")
	public String getFormFlag() {
		return formFlag;
	}

	public void setFormFlag(String formFlag) {
		this.formFlag = formFlag;
	}

	@Size(min=0, max=10, message="是否需要审核长度不能超过 10 个字符")
	public String getAuditFlag() {
		return auditFlag;
	}

	public void setAuditFlag(String auditFlag) {
		this.auditFlag = auditFlag;
	}

	@Size(min=0, max=64, message="审核人编号长度不能超过 64 个字符")
	public String getAuditorCode() {
		return auditorCode;
	}

	public void setAuditorCode(String auditorCode) {
		this.auditorCode = auditorCode;
	}

	@Size(min=0, max=64, message="审核人名称长度不能超过 64 个字符")
	public String getAuditorName() {
		return auditorName;
	}

	public void setAuditorName(String auditorName) {
		this.auditorName = auditorName;
	}

	@Size(min=0, max=10, message="任务状态长度不能超过 10 个字符")
	public String getTaskStatus() {
		return taskStatus;
	}

	public void setTaskStatus(String taskStatus) {
		this.taskStatus = taskStatus;
	}

	@Size(min=0, max=10, message="任务完成进度长度不能超过 10 个字符")
	public String getTaskProgress() {
		return taskProgress;
	}

	public void setTaskProgress(String taskProgress) {
		this.taskProgress = taskProgress;
	}

	@Size(min=0, max=10, message="是否是分解任务长度不能超过 10 个字符")
	public String getDecomposeFlag() {
		return decomposeFlag;
	}

	public void setDecomposeFlag(String decomposeFlag) {
		this.decomposeFlag = decomposeFlag;
	}

	@Size(min=0, max=64, message="源任务id长度不能超过 64 个字符")
	public String getSourceTaskId() {
		return sourceTaskId;
	}

	public void setSourceTaskId(String sourceTaskId) {
		this.sourceTaskId = sourceTaskId;
	}

	@Size(min=0, max=64, message="父任务id长度不能超过 64 个字符")
	public String getParentTaskId() {
		return parentTaskId;
	}

	public void setParentTaskId(String parentTaskId) {
		this.parentTaskId = parentTaskId;
	}

	public Long getRemarks1() {
		return remarks1;
	}

	public List<Date> getTaskStartTime() {
		return taskStartTime;
	}

	public void setTaskStartTime(List<Date> taskStartTime) {
		this.taskStartTime = taskStartTime;
	}

	public List<Date> getTaskEndTime() {
		return taskEndTime;
	}

	public void setTaskEndTime(List<Date> taskEndTime) {
		this.taskEndTime = taskEndTime;
	}

	public List<String> getTaskSupOrg() {
		return taskSupOrg;
	}

	public void setTaskSupOrg(List<String> taskSupOrg) {
		this.taskSupOrg = taskSupOrg;
	}

	public List<String> getTaskLeader() {
		return taskLeader;
	}

	public void setTaskLeader(List<String> taskLeader) {
		this.taskLeader = taskLeader;
	}

	public List<String> getTaskLeaderOrg() {
		return taskLeaderOrg;
	}

	public void setTaskLeaderOrg(List<String> taskLeaderOrg) {
		this.taskLeaderOrg = taskLeaderOrg;
	}

	public List<String> getContactName() {
		return contactName;
	}

	public void setContactName(List<String> contactName) {
		this.contactName = contactName;
	}

	public List<String> getContactPhone() {
		return contactPhone;
	}

	public void setContactPhone(List<String> contactPhone) {
		this.contactPhone = contactPhone;
	}

	public List<String> getFeedbackWay() {
		return feedbackWay;
	}

	public void setFeedbackWay(List<String> feedbackWay) {
		this.feedbackWay = feedbackWay;
	}

	public List<String> getFeedbackRate() {
		return feedbackRate;
	}

	public void setFeedbackRate(List<String> feedbackRate) {
		this.feedbackRate = feedbackRate;
	}

	public List<String> getTaskLeaderName() {
		return taskLeaderName;
	}

	public void setTaskLeaderName(List<String> taskLeaderName) {
		this.taskLeaderName = taskLeaderName;
	}

	public List<String> getTaskLeaderOrgName() {
		return taskLeaderOrgName;
	}

	public void setTaskLeaderOrgName(List<String> taskLeaderOrgName) {
		this.taskLeaderOrgName = taskLeaderOrgName;
	}

	public List<String> getTaskSupOrgName() {
		return taskSupOrgName;
	}

	public void setTaskSupOrgName(List<String> taskSupOrgName) {
		this.taskSupOrgName = taskSupOrgName;
	}

	public List<String> getTaskCoopOrg() {
		return taskCoopOrg;
	}

	public void setTaskCoopOrg(List<String> taskCoopOrg) {
		this.taskCoopOrg = taskCoopOrg;
	}

	public List<String> getTaskCoopOrgName() {
		return taskCoopOrgName;
	}

	public void setTaskCoopOrgName(List<String> taskCoopOrgName) {
		this.taskCoopOrgName = taskCoopOrgName;
	}

	public List<String> getTaskSupUser() {
		return taskSupUser;
	}

	public void setTaskSupUser(List<String> taskSupUser) {
		this.taskSupUser = taskSupUser;
	}

	public List<String> getTaskSupUserName() {
		return taskSupUserName;
	}

	public void setTaskSupUserName(List<String> taskSupUserName) {
		this.taskSupUserName = taskSupUserName;
	}

	public void setRemarks1(Long remarks1) {
		this.remarks1 = remarks1;
	}

	@Size(min=0, max=200, message="备用字段2长度不能超过 200 个字符")
	public String getRemarks2() {
		return remarks2;
	}

	public void setRemarks2(String remarks2) {
		this.remarks2 = remarks2;
	}

	@Size(min=0, max=200, message="备用字段3长度不能超过 200 个字符")
	public String getRemarks3() {
		return remarks3;
	}

	public void setRemarks3(String remarks3) {
		this.remarks3 = remarks3;
	}

	@Size(min=0, max=200, message="备用字段4长度不能超过 200 个字符")
	public String getRemarks4() {
		return remarks4;
	}

	public void setRemarks4(String remarks4) {
		this.remarks4 = remarks4;
	}

	@Size(min=0, max=100, message="创建人当时所在机构长度不能超过 100 个字符")
	public String getCreateOrg() {
		return createOrg;
	}

	public void setCreateOrg(String createOrg) {
		this.createOrg = createOrg;
	}

	public List<DcSupTaskAction> getDcSupTaskActionList() {
		return dcSupTaskActionList;
	}

	public void setDcSupTaskActionList(List<DcSupTaskAction> dcSupTaskActionList) {
		this.dcSupTaskActionList = dcSupTaskActionList;
	}

}